package com.bjc.platform.service;

import org.springframework.data.domain.PageRequest;

import com.bjc.platform.model.AdmUser;
import com.bjc.platform.util.Page;
import com.bjc.platform.vo.AdmUserSearchCondition;

/**
 * 和用户相关的业务处理接口
 */
public interface AdmUserService {

	/**
	 * 用户名已存在
	 */
	public static int EXIST_USER_NAME = 1;

	/**
	 * 有效用户
	 */
	public static int VALID_USER = 0;

	/**
	 * 检查登录用户名和密码是否正确, 并返回用户信息， 否则返回null
	 * 
	 * @param userName
	 *            用户名
	 * @return 用户信息验证通过返回完整的用户信息, 否则返回null
	 */
	AdmUser findUserByUsername(String userName);

	/**
	 * 保存用户信息
	 * 
	 * @param org
	 */
	AdmUser save(AdmUser org);

	/**
	 * 根据Id查询用户信息
	 * 
	 * @param id
	 * @return
	 */
	AdmUser get(Long id);

	/**
	 * 根据ID删除用户信息
	 * 
	 * @param id
	 */
	void delete(Long id);

	/**
	 * 根据条件查询，分布显示
	 * 
	 * @param cond
	 * @param pr
	 * @return
	 */
	Page search(AdmUserSearchCondition cond, PageRequest pr);

	/**
	 * 根据角色查询用户信息
	 * 
	 * @return
	 */
	long getCountUserByRoleId(Long roleId);

	/**
	 * 用户表单保存时数据有效性检查
	 * 
	 * @param user
	 * @return
	 */
	int validUserCheck(AdmUser user);

}
